package com.keyou.reggie.mapper;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.keyou.reggie.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * @Author: klq
 * @Date: 2023/1/12 13:58
 * @Description:
 */
@Mapper
public interface UserMapper extends BaseMapper<User> {

    /**
     * 在xml文件下写sql
     *
     * @param mail
     * @return
     */
    List<User> queryUsersByMail(@Param("mail") String mail);

    /**
     * 如果自定义的方法还希望能够使用MP提供的Wrapper条件构造器，则需要如下写法
     *
     * @param userWrapper
     * @return
     */
    @Select("SELECT * FROM user ${ew.customSqlSegment}")
    List<User> selectByMyWrapper(@Param(Constants.WRAPPER) Wrapper<User> userWrapper);

    /**
     * 和Mybatis使用方法一致
     *
     * @param name
     * @return
     */
    @Select("SELECT * FROM user where name = #{name}")
    List<User> selectByName(@Param("name") String name);

}
